From ab001d01c8274013e66d29a6e58275d819845c3c Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 13 Oct 2015 00:24:18 +0200 Subject: [PATCH] textview: Ensure magnifier popover points within widget area Otherwise the popopver will be automatically unmapped in _gtk_popover_update_child_visible() when the X axis (coming more or less directly from events) goes outside the textview. --- gtk/gtktextview.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 787e6e4640..e09fe901ba 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5048,10 +5048,13 @@ gtk_text_view_show_magnifier (GtkTextView *text_view, { cairo_rectangle_int_t rect; GtkTextViewPrivate *priv; + GtkAllocation allocation; GtkRequisition req; #define N_LINES 1 + gtk_widget_get_allocation (GTK_WIDGET (text_view), &allocation); + priv = text_view->priv; _gtk_text_view_ensure_magnifier (text_view); @@ -5070,6 +5073,7 @@ gtk_text_view_show_magnifier (GtkTextView *text_view, _gtk_magnifier_set_coords (GTK_MAGNIFIER (priv->magnifier), rect.x, rect.y + rect.height / 2); + rect.x = CLAMP (rect.x, 0, allocation.width); rect.y += rect.height / 4; rect.height -= rect.height / 4; gtk_popover_set_pointing_to (GTK_POPOVER (priv->magnifier_popover), -- 2.30.2